8x8 Font Replacement
Font replacement is the recommended starting point in translating a Japanese ROM.
Firstly, you need to decide which Japanese character will become which English character.
The best way to do this is to find the 'name your character' screen in the game and use
the layout of characters so that when you replace characters they appear correctly in
this screen (ie. in alphabetical order). The following example, from the Dragon Quest
series, will show how to do this:
Step 1: Find the 'Name Select' Screen
|
This should not be too hard. When you do, save it as a picture (if you emu does not support this, run it in a DOS window and use the cut/copy/paste icons (or try the 'print screen' button)).
|
Step 2: Convert the First Character
|
Now you need some knowledge of binary/hex/decimal numbers. If you don't, tough, this translation work is not for you!
You must convert each row of the character from a binary to a hexadecimal number. Assume each pixel represents a bit, the left one being
the most significant (=128). If the pixel is part of the character (white) give it a value 1, otherwize it is 0.
This will eventually give you the 8 hexadecimal numbers/bytes on the right of the picture.
|
Step 3: Hunt for the Character
Now you know the bytes of the character, you can hunt for it in the rom.
This is not as easy as it sounds. If the font uses one bitmap for the characters,
then the 8 bytes should be found together. If more than one bitmap is used, there
may be extra bytes between each of your bytes. This is the case here, where you
must search for 20 ff fc ff etc... The extra bytes may not be 'ff' they could well
be '00'. The font may be somehow encrypted or packed, in which case finding it this way
will not work (unusual)! If you find several occurances, try the next step for each
one until the character changes.
|
|
Step 4: Patching the Character
|
Now you know where the character is in the rom, you can change these bytes
to alter the character. In this case it has been changed to 'A'. Once you
have done this, load the rom and the character should have changed. If not,
you patched the wrong location, try step 3 again until it works. If you
still don't get it right, maybe try the next character, that may work...
|
Step 5: Completing the Font
|
Now you have converted one character, you should be able to do all of them!
The boring way is to repeat the same process for each character, but it is
much better to try and figure out where the next character will be without
converting it to hexadecimal numbers. Usually, it will be after the one you
just did, so try patching 'B' onto the next few bytes. If you are really
clever, you can write a program to load the rom and patch all the characters
for you (get my 8x8 Font collection for font data).
|
|